package com.health.healthSys.service;

import java.util.List;
import com.health.healthSys.domain.InfoComment;

/**
 * 资讯评论Service接口
 * 
 * @author maple
 * @date 2025-03-24
 */
public interface IInfoCommentService 
{
    /**
     * 查询资讯评论
     * 
     * @param commentId 资讯评论主键
     * @return 资讯评论
     */
    public InfoComment selectInfoCommentByCommentId(String commentId);

    /**
     * 查询资讯评论列表
     * 
     * @param infoComment 资讯评论
     * @return 资讯评论集合
     */
    public List<InfoComment> selectInfoCommentList(InfoComment infoComment);

    /**
     * 新增资讯评论
     * 
     * @param infoComment 资讯评论
     * @return 结果
     */
    public int insertInfoComment(InfoComment infoComment);

    /**
     * 修改资讯评论
     * 
     * @param infoComment 资讯评论
     * @return 结果
     */
    public int updateInfoComment(InfoComment infoComment);

    /**
     * 批量删除资讯评论
     * 
     * @param commentIds 需要删除的资讯评论主键集合
     * @return 结果
     */
    public int deleteInfoCommentByCommentIds(String[] commentIds);

    /**
     * 删除资讯评论信息
     * 
     * @param commentId 资讯评论主键
     * @return 结果
     */
    public int deleteInfoCommentByCommentId(String commentId);

    /**
     * 审核评论
     * 
     * @param commentId 评论ID
     * @param status 审核状态（1=通过，3=拒绝）
     * @param auditRemark 审核备注
     * @return 结果
     */
    public int auditComment(String commentId, String status, String auditRemark);

    /**
     * 点赞评论
     * 
     * @param commentId 评论ID
     * @return 结果
     */
    public int likeComment(String commentId);

    /**
     * 取消点赞评论
     * 
     * @param commentId 评论ID
     * @return 结果
     */
    public int unlikeComment(String commentId);

    /**
     * 举报评论
     * 
     * @param commentId 评论ID
     * @param reportReason 举报原因
     * @return 结果
     */
    public int reportComment(String commentId, String reportReason);

    /**
     * 获取评论树形结构
     * 
     * @param infoId 资讯ID
     * @return 评论树形结构
     */
    public List<InfoComment> getCommentTree(String infoId);

    /**
     * 获取待审核评论列表
     * 
     * @param infoComment 评论查询条件
     * @return 待审核评论列表
     */
    public List<InfoComment> selectPendingAuditList(InfoComment infoComment);
}
